package com.asa.a;

public class K {

	
	/**
	 * 
	 * 
	 * 如何解决这些00M ?
			1、要解决00M异常或heap space的异常， 一般的手段是首先通过内存映像分析工具
			(如Eclipse Memory Analyzer) 对dump出来的堆转储快照进行分析，重点是确认
			内存中的对象是否是必要的，也就是要先分清楚到底是出现了内存泄漏(Memory
			Leak)还是内存溢出(Memory Overflow) 。
			2、如果是内存泄漏，可进- -步通过工具查看泄漏对象到GC Roots 的引用链。于是就
			能找到泄漏对象是通过怎样的路径与GCRoots相关联并导致垃圾收集器无法自动回收
			它们的。掌握了泄漏对象的类型信息，以及GC Roots引用链的信息，就可以比较准确
			地定位出泄漏代码的位置。
			3、如果不存在内存泄漏，换句话说就是内存中的对象确实都还必须存活着，那就应当
			检查虛拟机的堆参数(-Xmx与-Xms) ，与机器物理内存对比看是否还可以调大，从代
			码_上检查是否存在某些对象生命周期过长、持有状态时间过长的情况，尝试减少程序
			运行期的内存消耗。

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 运行时常量池
			**运行时常量池(Runtime Constant Poo1)是方法区的一部分。
			**常量池表( Constant Pool Table) 是Class文件的一部分，用于存放编译期生成的各
			种字面量与符号引用，这部分内容将在类加载后存放到方法区的运行时常量池中。
			运行时常量池，在加载类和接口到虚拟机后，就会创建对应的运行时常量池。
			JVM为每个已加载的类型(类或接口)都维护一个常量池。池中的数据项像数组项-样，
			是通过索引访问的。
			
			运行时常量池中包含多种不同的常量，包括编译期就已经明确的数值字面量，也包括到
			运行期解析后才能够获得的方法或者字段引用。此时不再是常量池中的符号地址了，这
			里换为真实地址。
			
				➢运行时常量池，相对于Class文件常量池的另一 重要特征是:具备动态性。
			运行时常量池类似于传统编程语言中的符号表(symbol table) ，但是它所包含的数
			据却比符号表要更加丰富一些。
			
			当创建类或接口的运行时常量池时，如果构造运行时常量池所需的内存空间超过了方法
			区所能提供的最大值，则JVM会 抛OutOfMemoryError异常。

	 * 
	 * 
	 * 
	 * 
	 * 
	 */
	
	
	
	
	
}
